//
//  BubbleSort.c
//  AlgorithmLearning
//
//  Created by aron on 2017/11/2.
//  Copyright © 2017年 aron. All rights reserved.
//

#include "BubbleSort.h"
#include "PrintUtil.h"

void Bubblesort(ElementType arr[], int count) {
    int i, j;
    _Bool isChanged = 0;
    for (i = 0; i<count; i++) {
        isChanged = 0;
        for (j = 1; j<count-i; j++) {
            if (arr[j] < arr[j-1]) {
                ElementType tmp = arr[j];
                arr[j] = arr[j-1];
                arr[j-1] = tmp;
                isChanged = 1;
            }
        }
        // 没有存在逆序，表示i之后的元素都是有序的序列，可以结束排序 
        if (0 == isChanged) {
             break;
        }
    }
}
